/*
 *  Copyright 2007 Google Inc.

 * 	Licensed under the Apache License, Version 2.0 (the "License");
 *	you may not use this file except in compliance with the License.
 *	You may obtain a copy of the License at
 
 *  	http://www.apache.org/licenses/LICENSE-2.0

 *	Unless required by applicable law or agreed to in writing, software
 *	distributed under the License is distributed on an "AS IS" BASIS,
 *	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *	See the License for the specific language governing permissions and
 *	limitations under the License.

 */

package com.byjyate.rssdreamwork;

import java.util.*;
import org.w3c.dom.*;

public class RemoveRedundancyTransformer implements RssTransformer {
	
	public RemoveRedundancyTransformer() {
	}

	@SuppressWarnings({ "unchecked", "rawtypes" })
	@Override
	public void applyTransform(Element channelNode) {
		if (channelNode == null)
			throw new NullPointerException();

		NodeList items = channelNode.getChildNodes();
		ArrayList keys = new ArrayList();
		for (int i = items.getLength() - 1; i >= 0; i--) {
			Node item = items.item(i);
			if (item.getNodeName().toLowerCase().equals("item"))
			{
				String link = RssTransformerHelper.FindProperty(item, "link").getTextContent();
				String title = RssTransformerHelper.FindProperty(item, "title").getTextContent();
				if (keys.contains(link) || keys.contains(title))
				{
					item.getParentNode().removeChild(item);
					continue;
				}
				keys.add(link);
				keys.add(title);
			}
		}
	}
}
